# 迭代器

"""
迭代：可以通过for循环遍历，这种循环遍历我们称之为迭代（iteration）
可迭代对象(Iterable):可以直接作用于for循环的对象
判断一个对象是否可迭代对象：
from collections.abc import Iterable
print(isinstance('abc',Iterable))
生成器都是Iterator对象，但list、dict、str虽然是Iterable，却不是Iterator

凡是可作用next()函数的对象都是Iterator类型，它们表示一个惰性计算的序列

可以通过iter(序列)函数获得一个Iterator对象

"""
from collections.abc import Iterable
print(isinstance('abc',Iterable))


ls = [1,2,3]
d = iter(ls) 
print(d) # <list_iterator object at 0x000001CD34292F28>
for i in range(len(ls)):
    print(next(d))


s = 'abc'
d1 = iter(s)
print(d1)
for i in range(len(s)):
    print(next(d1))

